home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 163_02 / sprintf.c < prev    next >
Text File  |  1988-01-30  |  896b  |  27 lines

  1. /*
  2. ** sprintf(s, format [,arg] ... ) -- string formatter
  3. **        operates as described by Kernighan & Ritchie
  4. **        only d, o, x, c, s, and u specs are supported.
  5. */
  6.  
  7. extern int CCARGC(), _format();
  8.  
  9. sprintf(args) int args; {
  10.   int argc, *argv, *ctl;
  11.   char *s;
  12.   argc = CCARGC() - 1; /* fetch arg count from CX reg */
  13.   argv = &args; /* address of first argument */
  14.   s = argv[argc--]; /* get address of string */
  15.   ctl = argv[argc]; /* get address of format string */
  16.   _format(ctl, argc, argv, zapc, &s);
  17.   *s = 0;
  18.   }
  19.  
  20. static zapc(c, s) char c; int *s; {
  21.   char *string;
  22.   string = *s; /* get string address */
  23.   *string++ = c;
  24.   *s = string;
  25.   return c;
  26.   }
  27.